package cn.kgcnews.service.impl;

import java.util.List;

import cn.kgcnews.dao.UserDao;
import cn.kgcnews.dao.impl.UserDaoImpl;
import cn.kgcnews.pojo.NewsDetail;
import cn.kgcnews.pojo.PageBean;
import cn.kgcnews.pojo.User;
import cn.kgcnews.service.UserService;
/**
 * 用户业务实现类
 * @author 204
 *
 */
public class UserServiceImpl implements UserService {
	//添加数据访问层的引用
	private UserDao userDao=new UserDaoImpl();

	@Override
	public int registerUser(User user) {
		try {
			//先判断用户名是否被占用
			if(userDao.queryByUserName(user.getUserName())!=null){
				//用户名被占用
				return 0;
			}else{
				//用户名可以使用
				if(userDao.save(user)==1){
					return 1;
				}
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return -1;
	}

	@Override
	public User login(String userName, String userPass) {
		User user=null;
		try {
			//根据用户名获取用户对象
			user=userDao.queryByUserName(userName);
			//如果用户对象不为空，判断用户密码是否和数据库的用户密码一致
			if(user!=null && userPass.equals(user.getUserPass())){
				return user;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public List<User> printAllUsers() {
		try {
			return userDao.queryAllUser();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public PageBean<User> queruserByPageno(int pageNo, int pagesize,
			String username, int roleId) {
		
		
		PageBean<User> pageBean = new PageBean<User>();
		try {
			// 设置当前页码
			pageBean.setCurrPageNo(pageNo);
			// 设置每页的记录数
			pageBean.setPageSize(pagesize);
			pageBean.setTotalCount(this.queryTotalRecord(username,roleId));
			// 根据页码和每页记录数获取偏移量
			int offSet = (pageNo - 1) * pagesize;
			List<User> list = userDao.queryUserByOffset(offSet, pagesize,username,roleId);
			// 设置每页的数据
			pageBean.setList(list);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return pageBean;
	}

	@Override
	public int queryTotalRecord(String username, int roleId) {
		
		try {
			int a=userDao.queryTotalRecord(username,roleId);
			//System.out.println("总共有又有   撒旦法撒旦法是否："+a);
			return a;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}

	@Override
	public int queryTotalPageCount(int pageSize, String username, int roleId) {
		PageBean<User> pageBean = new PageBean<User>();
		
	
		// 总记录数
		int totalCount = this.queryTotalRecord(username,roleId);
		// 设置每页的记录数
		pageBean.setPageSize(pageSize);
		// 计算总页数
		pageBean.setTotalCount(totalCount);
		int a=pageBean.getTotalPageCount();
		System.out.println("aaaaa:"+a);
		return a;
		
	}

	@Override
	public boolean checkUserExists(String username) {
		User user=null;
		try {
			//根据用户名获取用户对象
			user=userDao.queryByUserName(username);
			//如果用户对象不为空
			if(user!=null){
				return true;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}

	@Override
	public boolean checkUserExists2(String userEmail) {
		List<User> list=null;
		try {
			//根据用户名获取用户对象
			list=userDao.queryByUserEmail(userEmail);
			//如果用户对象不为空
			if(list.size()>0){
				return true;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}

	

}
